﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace QLVeChuyenBay
{
    public partial class frmNguoiDung : Form
    {
        public frmNguoiDung()
        {
            InitializeComponent();
        }
        protected NguoiDungBUS obj = new NguoiDungBUS();
        private void frmNguoiDung_Load(object sender, EventArgs e)
        {
            LoadGridview();
        }
        private void LoadGridview()
        {
            List<NguoiDungDTO> ds = obj.GetALLNguoiDung();
            dgvNguoiDung.Rows.Clear();
            for (int i = 0; i < ds.Count; i++)
            {
                dgvNguoiDung.Rows.Add(i + 1, ds[i].TenNguoiDung, ds[i].MatKhau, ds[i].HoTen, ds[i].Quyen);
            }
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            NguoiDungDTO nd = new NguoiDungDTO();
            nd.TenNguoiDung = txtUserName.Text;
            nd.MatKhau = txtpass.Text;
            nd.HoTen = txtHoTen.Text;
            nd.Quyen = cboQuyen.Text;
            if (txtUserName.Text == "" || txtpass.Text == "" || cboQuyen.Text == "")
            {
                MessageBox.Show("Nhập thiếu thông tin", "Thông báo");
            }
            else
            {
                if (obj.KTTenNguoiDung(txtUserName.Text)||txtUserName.TextLength<6)
                {
                    MessageBox.Show("Tên người dùng đã được sử dụng hoặc ít hơn 6 ký tự!", "Thông báo");
                    txtUserName.Clear();
                }
                else
                {
                    if (txtpass.TextLength < 6)
                    {
                        MessageBox.Show("Mật khẩu phải từ 6 đến 32 ký tự", "Thông báo");
                    }
                    else
                    {
                        if (txtpass.Text == txtXacNhanPass.Text)
                        {
                            int res = obj.Them(nd);
                            if (res >= 0)
                            {
                                LoadGridview();
                                MessageBox.Show("Cấp quyền thành công!");
                            }
                            else
                                MessageBox.Show("Cấp quyền thất bại!");
                        }
                        else
                            MessageBox.Show("Xác nhận mật khẩu không trùng khớp!");
                    }
                }
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            NguoiDungDTO nd = new NguoiDungDTO();
            nd.TenNguoiDung = dgvNguoiDung.SelectedRows[0].Cells[1].Value.ToString();
            DialogResult hoi = MessageBox.Show("Bạn thật sự muốn xóa", "Hỏi", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
            if (hoi == DialogResult.Yes)
            {

                obj.Xoa(nd);
                if (obj.Xoa(nd) >= 0)
                {
                    LoadGridview();
                }
                else
                    MessageBox.Show("Xóa thất bại");
            }
        }

        private void btnThoát_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnTaoMoi_Click(object sender, EventArgs e)
        {
            txtUserName.Clear();
            txtpass.Clear();
            txtHoTen.Clear();
            txtXacNhanPass.Clear();
            txtUserName.Focus();
        }

       
        private void txtUserName_TextChanged(object sender, EventArgs e)
        {
            if (obj.KTTenNguoiDung(txtUserName.Text)||txtUserName.TextLength < 6)
            {
                lblKT.Text = "Tên người dùng này đã được sử dụng hoặc nhỏ hơn 6 ký tự!";
                lblKT.ForeColor = Color.Red;
               
            }
            else
            {
               
                lblKT.Text = "Tên Người dùng hợp lệ";
                lblKT.ForeColor = Color.Blue;
                
            }
        }

        private void txtHoTen_TextChanged(object sender, EventArgs e)
        {

        }

        private void txtXacNhanPass_TextChanged(object sender, EventArgs e)
        {
            if (txtpass.Text == txtXacNhanPass.Text)
            {
                lblKTPass.Text = "Xác nhận hợp lệ!";
                lblKTPass.ForeColor = Color.Blue;
            }
            else
            {
                lblKTPass.Text = "Không trùng khớp với mật khẩu vừa nhập!";
                lblKTPass.ForeColor = Color.Red;
            }
        }

        private void txtpass_TextChanged(object sender, EventArgs e)
        {
            
        }

       
    }
}
